﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using KPIS.GERP.GHRMS.MODEL;
using System.Data;

namespace KPIS.GERP.GHRMS.IBLL
{
    public interface ITimeAttendantsBLL
    {
        int GetMissWorkingDays(string month, string year, string emp_seq);

        int GetActualWorkingDays(string month, string year, string emp_seq);

        string GetEmpSequence(string CodeScan);

        bool CheckDuplicate(string EmpSequence, string WorkingDate);

        bool CheckDupTimeAttMonly(string EmpSequence, string Month, string Year);

        DataSet LoadTimeAttendants(string EmployeeType, string WorkingDate, string WorkingJobSiteSeq, string EmpSequence);

        IList<TimeAttendantInfo> LoadTimeAttendants_NewMod(string WorkingDate, string EmpSequence);

        IList<TimeAttendantInfo> GetEmpSeqDist(string month, string year);

        IList<TimeAttendantInfo> GetTimeAtt_NonStatus(string month, string year);

        int Insert(string WorkingDate, int EmpSeq, string WorkingStart, string WorkingEnd
                 , string WorkingStatus, string Remarks, int CreatedBy);

        int Update(int WorkingSeq, string WorkingDate, int EmpSeq
                , string WorkingStart, string WorkingEnd, string WorkingStatus
                , string Remarks, int UpdatedBy);

        int UpdateStatus(int WorkingSeq, string WorkingStatus, string Remarks, int UpdatedBy);

        int Delete(int WorkingSeq, int UpdatedBy);

        DataSet LoadTimeAttMonthly(string empType, string WorkingJobSiteSeq, string year, string month);

        int InsertTimeAttMonthly(string emp_seq, Nullable<int> working_month, Nullable<int> plan_working_day_count
            , Nullable<int> actual_working_day_count, Nullable<decimal> valid_absence_day_count
            , Nullable<decimal> invalid_absence_day_count, Nullable<int> late_day_count, Nullable<int> sick_day_count
            , Nullable<int> private_day_count, Nullable<int> vacation_day_count, Nullable<int> working_year, Nullable<int> sick_count
            , Nullable<int> quota_vacation, Nullable<int> deliver_day_count, Nullable<int> edu_day_count, Nullable<int> ordain_day_count
            , Nullable<int> temp_day_count, int CreatedBy, DateTime? CreatedWhen);

        int UpdateTimeAttMonthly(string emp_seq, Nullable<int> working_month, Nullable<int> plan_working_day_count
            , Nullable<int> actual_working_day_count, Nullable<decimal> valid_absence_day_count
            , Nullable<decimal> invalid_absence_day_count, Nullable<int> late_day_count, Nullable<int> sick_day_count
            , Nullable<int> private_day_count, Nullable<int> vacation_day_count, Nullable<int> working_year, Nullable<int> sick_count
            , Nullable<int> quota_vacation, Nullable<int> deliver_day_count, Nullable<int> edu_day_count, Nullable<int> ordain_day_count
            , Nullable<int> temp_day_count, int UpdatedBy, DateTime? UpatedWhen);

        int DeleteTimeAttMonthly(int Sequence, int UpdatedBy);        
    }
}
